<?php
class CP_NewsController extends XPHP_Controller
{
	/**
	 * Phương thức sẽ thực thi trước khi thực thi sau khi controller được khởi tạo
	 */
	public function _init()
	{
		//Load layout
		$this->loadLayout("Administrator");
		//Xác thực
		$this->helper->auth();
	}
	
	public function indexAction()
	{
		//Lấy ra toàn bộ danh sách các tin tức
		$news = new Areas_CP_Models_News();
		$newsList = $news->select_all(false, "date_create DESC");
		
		//Thêm vào tên danh mục
		foreach ($newsList as $id => $n)
		{
			$cat = new Areas_CP_Models_NewsCategories($n["categoryID"]);
			$newsList[$id]["categoryName"] = $cat->name;
		}
		
		//Chuyển sang view
		$this->view->newsList = $newsList;
		
		return $this->view();
	}
	
	/**
	 * Action thêm tin tức mới
	 * [[
	 * model: Areas_CP_Models_News
	 * ]]
	 */
	public function createAction()
	{
		//Lấy ra danh sách mảng các danh mục tin tức
		$modelCategories = new Areas_CP_Models_NewsCategories();
		$arrCategories = $modelCategories->select_all();
		//Sắp xếp danh mục cha con
		$arrData = array();
		foreach ($arrCategories as $key => $item)
		{
			if ($item['parentID'] == 0)
			{
				$arrData[$key] = $item;
				foreach ($arrCategories as $key2 => $item2) {
					if ($item2['parentID'] == $item['id'])
						$arrData[$key2] = $item2;
				}
			}
		}
		//Chuyển sang View
		$this->view->arrCategories = $arrData;

		return $this->view();
	}
	
	/**
	 * ActionPOST thêm tin tức mới
	 * [[
	 * model: Areas_CP_Models_News
	 * ]]
	 */
	public function createPOST()
	{
		if($this->hasModel())
		{
			if($this->model->isValid())
			{
				$this->model->date_create = XPHP_Date::toTime(date("H:i:s d/m/y"));
				$this->model->insert();
				//Redirect tới action index
				return $this->redirect("index");
			}
		}
	}
	
	/**
	 * Action sửa tin tức
	 */
	public function editAction($args)
	{
		$model = new Areas_CP_Models_News($args[0]);
		$model->content = XPHP_String::HtmlStringDecode($model->content);
		
		//Lấy ra danh sách mảng các danh mục tin tức
		$modelCategories = new Areas_CP_Models_NewsCategories();
		$arrCategories = $modelCategories->select_all();
		//Sắp xếp danh mục cha con
		$arrData = array();
		foreach ($arrCategories as $key => $item)
		{
			if ($item['parentID'] == 0)
			{
				$arrData[$key] = $item;
				foreach ($arrCategories as $key2 => $item2) {
					if ($item2['parentID'] == $item['id'])
						$arrData[$key2] = $item2;
				}
			}
		}
		//Chuyển sang View
		$this->view->arrCategories = $arrData;

		return $this->view($model);
	}

	/**
	 * ActionPOST sửa tin tức
	 * [[
	 * model: Areas_CP_Models_News
	 * ]]
	 */
	public function editPOST()
	{
		if($this->hasModel())
		{
			if($this->model->isValid())
			{
				$this->model->update();
				//Redirect tới action index
				return $this->redirect("index");
			}
		}
	}
	
	public function detailAction($args)
	{
		$model = new Areas_CP_Models_News($args[0]);
		return $this->view($model);
	}

	public function deleteAJAX()
	{
		$id = $this->params['id'];
		$news = new Areas_CP_Models_News($id);
		$news->delete();
		
		return $this->json(array("success" => true));
	}
}